package com.library.admin.modules.rolemenu.service;

import com.library.admin.modules.role.entity.Role;
import com.library.admin.modules.rolemenu.entity.RoleMenu;
import com.library.admin.modules.rolemenu.vo.RoleMenuVO;
import com.library.admin.modules.rolemenu.bo.RoleMenuPage;
import com.library.admin.modules.rolemenu.bo.RoleMenuInsert;
import com.library.admin.modules.rolemenu.bo.RoleMenuUpdate;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * @Author xyh
 * @Desc 角色和菜单关联表(RoleMenu)表服务接口
 * @Date 2023-10-02 15:09:33
 */
public interface RoleMenuService extends IService<RoleMenu> {

    /**
     * 分页查询
     */
    IPage<RoleMenuVO> queryByPage(RoleMenuPage page);

    /**
     * 根据ID查详情
     */
    RoleMenuVO queryById(Integer id);

    /**
     * 新增数据
     */
    boolean insert(RoleMenuInsert roleMenuInsert);

    /**
     * 修改数据
     */
    boolean update(RoleMenuUpdate roleMenuUpdate);

    /**
     * 通过主键删除数据
     */
    boolean deleteById(Integer id);

    /**
     * 查询角色拥有的菜单
     *
     * @param roleIds
     * @return
     */
    Set<Integer> getMenuIdsByRoleIds(Collection<Integer> roleIds);
}
